package com.beiben.work.process.domain;

import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.beiben.system.user.domain.BeiBenUser;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Date;

/**
 * 任务分配对象 work_file_process_user
 *
 * @author xgq
 * @date 2020-08-26
 */
public class FileProcessUser extends BaseEntity {

    private static final long serialVersionUID = 1L;


    /**
     * 主键ID
     */
    private Long itemId;

    /**
     * 任务ID
     */
    private Long workId;

    /*
     * 序号
     * */
    private String serial;

    /**
     * 用户ID
     */
    @Excel(name = "用户ID")
    private Long userId;
    /**
     * 用户IDs
     */
    private Long[] userIds;
    /**
     * 用户
     */
    private BeiBenUser user;

    /**
     * 每日工作时长
     */
    @Excel(name = "每日工作时长")
    private BigDecimal workHours;

    /**
     * 文件时长
     */
    @Excel(name = "文件时长")
    private Double fileHours;

    /**
     * 文件时长ID
     */
    @Excel(name = "文件时长ID")
    private Long fileId;

    /**
     * 文本工时
     */
    @Excel(name = "文本工时")
    private BigDecimal textHours;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Integer state;

    /**
     * 是否超时
     */
    @Excel(name = "是否超时")
    private String isTimeOut;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat("yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat("yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishTime;

    /**
     * 实际任务完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat("yyyy-MM-dd")
    @Excel(name = "实际任务完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date realFinishTime;

    /**
     * 所属组别
     */
    private String[] groups;

    /**
     * 所属组别
     */
    @Excel(name = "所属组别")
    private String workUserGroup;
    /**
     * 主键IDs
     */
    private Long[] itemIds;

    /**
     * 生成的数据量
     */
    private Long number;

    /**
     * 工作内容
     */
    private String workContent;

    /**
     * 人员所属部门
     */
    private Long deptId;

    /**
     * 是否输出
     */
    private String isSubmitFile;

    /**
     * 输出物名称
     */
    private String submitName;

    /**
     * 工作类型：0：日常工作，1：项目工作 2:项目节点
     */
    private String workType;

    /**
     * 审核人ID
     */
    private Long checkUserId;

    /**
     * 审核人
     */
    private String checkUserName;

    /**
     * 上层id
     */
    private Long parentId;

    /**
     * 项目名称
     */
    private String projectName;
    /**
     * 项目经理id
     */
    private Long projectManagerId;
    /*
    * 是否自动生成序列号，1:生成，其他不生成
    * */
    private String isSerial;

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public Long getProjectManagerId() {
        return projectManagerId;
    }

    public void setProjectManagerId(Long projectManagerId) {
        this.projectManagerId = projectManagerId;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public void setItemId(Long itemId) {
        this.itemId = itemId;
    }

    public Long getItemId() {
        return itemId;
    }

    public void setWorkId(Long workId) {
        this.workId = workId;
    }

    public Long getWorkId() {
        return workId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setWorkHours(BigDecimal workHours) {
        this.workHours = workHours;
    }

    public BigDecimal getWorkHours() {
        return workHours;
    }

    public void setFileHours(Double fileHours) {
        this.fileHours = fileHours;
    }

    public Double getFileHours() {
        return fileHours;
    }

    public void setFileId(Long fileId) {
        this.fileId = fileId;
    }

    public Long getFileId() {
        return fileId;
    }

    public void setTextHours(BigDecimal textHours) {
        this.textHours = textHours;
    }

    public BigDecimal getTextHours() {
        return textHours;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Integer getState() {
        return state;
    }

    public void setIsTimeOut(String isTimeOut) {
        this.isTimeOut = isTimeOut;
    }

    public String getIsTimeOut() {
        return isTimeOut;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setFinishTime(Date finishTime) {
        this.finishTime = finishTime;
    }

    public Date getFinishTime() {
        return finishTime;
    }

    public Long[] getItemIds() {
        return itemIds;
    }

    public void setItemIds(Long[] itemIds) {
        this.itemIds = itemIds;
    }

    public Date getRealFinishTime() {
        return realFinishTime;
    }

    public void setRealFinishTime(Date realFinishTime) {
        this.realFinishTime = realFinishTime;
    }

    public Long getNumber() {
        return number;
    }

    public void setNumber(Long number) {
        this.number = number;
    }

    public String getWorkContent() {
        return workContent;
    }

    public void setWorkContent(String workContent) {
        this.workContent = workContent;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getIsSubmitFile() {
        return isSubmitFile;
    }

    public void setIsSubmitFile(String isSubmitFile) {
        this.isSubmitFile = isSubmitFile;
    }

    public String getSubmitName() {
        return submitName;
    }

    public void setSubmitName(String submitName) {
        this.submitName = submitName;
    }

    public String getWorkType() {
        return workType;
    }

    public void setWorkType(String workType) {
        this.workType = workType;
    }

    public Long getCheckUserId() {
        return checkUserId;
    }

    public void setCheckUserId(Long checkUserId) {
        this.checkUserId = checkUserId;
    }

    public BeiBenUser getUser() {
        return user;
    }

    public void setUser(BeiBenUser user) {
        this.user = user;
    }

    public Long[] getUserIds() {
        return userIds;
    }

    public void setUserIds(Long[] userIds) {
        this.userIds = userIds;
    }

    public String[] getGroups() {
        return groups;
    }

    public void setGroups(String[] groups) {
        this.groups = groups;
    }

    public String getWorkUserGroup() {
        return workUserGroup;
    }

    public void setWorkUserGroup(String workUserGroup) {
        this.workUserGroup = workUserGroup;
    }

    public String getCheckUserName() {
        return checkUserName;
    }

    public void setCheckUserName(String checkUserName) {
        this.checkUserName = checkUserName;
    }

    public String getSerial() {
        return serial;
    }

    public void setSerial(String serial) {
        this.serial = serial;
    }

    public String getIsSerial() {
        return isSerial;
    }

    public void setIsSerial(String isSerial) {
        this.isSerial = isSerial;
    }

    @Override
    public String toString() {
        return "FileProcessUser{" +
                "itemId=" + itemId +
                ", workId=" + workId +
                ", userId=" + userId +
                ", userIds=" + Arrays.toString(userIds) +
                ", user=" + user +
                ", workHours=" + workHours +
                ", fileHours=" + fileHours +
                ", fileId=" + fileId +
                ", textHours=" + textHours +
                ", state=" + state +
                ", isTimeOut='" + isTimeOut + '\'' +
                ", startTime=" + startTime +
                ", finishTime=" + finishTime +
                ", realFinishTime=" + realFinishTime +
                ", groups=" + Arrays.toString(groups) +
                ", workUserGroup='" + workUserGroup + '\'' +
                ", itemIds=" + Arrays.toString(itemIds) +
                ", number=" + number +
                ", workContent='" + workContent + '\'' +
                ", deptId=" + deptId +
                ", isSubmitFile='" + isSubmitFile + '\'' +
                ", submitName='" + submitName + '\'' +
                ", workType='" + workType + '\'' +
                ", checkUserId=" + checkUserId +
                '}';
    }
}
